//第二步：引入models/users.js，这样才能访问里面的变量，相当于{userList：async() {。。。。}}
var UserModel = require('../models/users.js')

// 将函数赋值给变量
var index = async (req,res,next) => {
	res.send({
		msg: '管理员权限',
		status: 0
	})
}

// 控制器
// 第三步:调用usersList方法将结果传递到客户端
var usersList = async (req,res,next) => {
	// 点方法访问UserModel中的userList方法，返回的结果赋值给result
	var result = await UserModel.usersList()

	// 判断，result有值（能获取数据库的信息）代表true，无值代表false
	if (result) {
		res.send({
			msg: '获取所有用户信息',
			status: 0,
			data: {
				// 把result，即数据库的信息赋值给data，然后客户端通过访问接口来获取数据
				usersList:result
			}
		})
	} else {
		res.send({
			msg: '获取用户信息失败',
			status: -1
		})
	}
}

// 第三步
var updateFreeze = async (req,res,next) => {
	// models/user.js中参数是email和isFreeze
	var {email,isFreeze} = req.body

	//传递参数到models/user.js的updateFreeze方法
	var result = await UserModel.updateFreeze(email,isFreeze)

	// 判断true or false
	if (result) {
		res.send({
			msg: '账号冻结操作成功',
			status: 0
		})
	}else{
		res.send({
			msg: '账号冻结操作失败',
			status: -1
		})
	}

	// 
}

// 接收UserModel传递的deleteUser方法
var deleteUser = async (req,res,next)=> {
	var { email } = req.body
	var result = await UserModel.deleteUser(email)

	if (result) {
		res.send({
			msg: '账号删除操作成功',
			status: 0
		})
	} else {
		res.send({
			msg : '账号删除操作失败',
			status : -1
		})
	}
}


// 导出为对外接口
module.exports = {
	index,
	usersList,		//必须的一步
	updateFreeze,
	deleteUser
}